In an effort to create specialized and independent products, developers have developed a multitude of unique applications for computer systems, configured to perform a vast array of functions quickly and effectively. However, in pressing for this isolated application development model, some of the advantages of monolithic products and applications have been abandone—namely, seamless user experience, and data sharing. Applications of computer systems utilize a variety of different file and data types, to perform distinct functions which are often unique to a particular application or system. Additionally, the applications themselves have corresponding user interfaces, with interface elements unique to themselves, and specially configured to facilitate access to certain data types.
As a result, user experience between applications tends to be choppy and jarring, with little to no continuity. Furthermore, data types are often incompatible between applications. These issues lead to a disconnected and problematic user experience.